/**
 * Projekt do předmetu GJA - LATEX TABLE CREATOR
 *
 * Soubor: CellAttribute.java
 *
 * @author Ondřej Kubal  <xkluba00@stud.fit.vutbr.cz>
 * @author Petr Šimon    <xsimon10@stud.fit.vutbr.cz>
 */

package table;

import java.awt.*;
import java.lang.String;

/**
 * Interface spravující přístup k nastavování prarametrů buněk
 * (Data uložená v <code>AttributiveCellTableModel</code>)
 * (Implementace v <code>DefaultCellAttributeData</code>)
 */
public interface CellAttribute
{
     /** Jednotky: Nedefinovaná velikost */
     public final int SIZE_NONE  = 0;
     /** Jednotky: pixely */
     public final int SIZE_PIX   = 1;
     /** Jednotky: centimetry */
     public final int SIZE_CM    = 2;
     /** Jednotky: milimetry */
     public final int SIZE_MM    = 3;
     /** Jednotky: palce */
     public final int SIZE_IN    = 4;
     /** Jednotky: pt (jednotky písma)*/
     public final int SIZE_PT    = 5;
     /** Jednotky: pc (pica) */
     public final int SIZE_PC    = 6;
     /** Jednotky: em (šířka písmene velkého M)*/
     public final int SIZE_EM    = 7;
     
     /**
      * Vloží řádek do modelu
      * @param row řádek
      */
     //public void insertRow(int row);
     
     /**
      * Zjistí počet řádků a sloupců
      * @return rozměry
      */
     public Dimension getSize();
     
     /**
      * Nastaví počet řádků a sloupců
      * !! Nuluje data !!
      * @param size rozměry
      */
     public void setSize(Dimension size);
     
     /**
      * Přidá sloupec do modelu
      * @param row řádek
      */
     public void addColumn();
     
     /**
      * Vloží řádek do modelu
      * @param row řádek
      */
     public void addRow();
     
     /**
      * Odstraní sloupec z modelu
      * @param index číslo sloupce
      */
     public boolean removeColumn(int index);
     
     /**
      * Odstraní řádek z modelu
      * @param index číslo řádku
      */
     public boolean removeRow(int index);
     
     /**
      * Nastaví šířku sloupce
      * @param col sloupec
      * @param width šířka (velikost)
      * @param type jednotky šířky
      */
     public void setWidth(int col, float width, int type);
     
     /**
      * Nastaví výšku řádeku
      * @param row řádek
      * @param width výška (velikost)
      * @param type jednotky výšky
      */
     public void setHeight(int row, float width, int type);
     
     /**
      * Vrátí šířku sloupce
      * @param col sloupec
      * @return šířka sloupce (velikost)
      */
     public float getWidth(int col);
     
     /**
      * Vrátí výšku řádku
      * @param row řádek buňky
      * @return výška řádku (velikost)
      */
     public float getHeight(int row);
     
     /**
      * Vrátí jednotky pro šířku sloupce
      * @param col sloupec
      * @return šířka sloupce - jednotky
      */
     public int getWidthType(int col);
     
     /**
      * Vrátí jednotky pro výšku řádku
      * @param row řádek buňky
      * @return výška řádku - jednotky
      */
     public int getHeightType(int row);

     /**
      * Vrati rtezec s jednotkou, ktery odpovida zadanemu parametru
      * @param type jednotka
      * @return retezec odpoviajici ciselne konstante jednotky
      */
     public String getTypeString(int type);
}
